using System;
using System.Collections.Generic;
using System.Text;
using PW.Mini.SlepowronskiJ.Siec.Aktywacja;

namespace PW.Mini.SlepowronskiJ.Siec.Budowa
{
    [Serializable]
    public class ElmanNeuronR : Neuron
    {
        private double[,] r;
        private int liczbaNeuronowSasiadujacych;

        public int LiczbaNeuronowSasiadujacych
        {
            get { return liczbaNeuronowSasiadujacych; }
            set 
            {
                liczbaNeuronowSasiadujacych = value;
                r = new double[LiczbaWejsc, liczbaNeuronowSasiadujacych];
            }
        }

        public double[,] R
        {
            get { return r; }
            set { r = value; }
        }

        #region konsutruktory
        public ElmanNeuronR(int liczbaWejsc) : base(liczbaWejsc) { }

        public ElmanNeuronR(int liczbaWejsc, IFunkcjaAktywacji fa)
            : base(liczbaWejsc, fa) { }
        #endregion

        /// <summary>
        /// losuje wagi z przedzialu <Neuron.minLosowaWaga,Neuron.maxLosowaWaga>
        /// </summary>
        public override void Reset()
        {
            base.Reset();
            this.ResetR();
        }

        public void ResetR()
        {
            for (int i = 0; i < LiczbaWejsc; ++i)
                for(int j = 0; j < liczbaNeuronowSasiadujacych;++j)
                r[i,j] = 0.0;
        }


    }
}
